Release 10.1A: OpenEdge Application Server:
Developing AppServer Applications
Understanding condition handling in distributed Progress 4GL sessions
The processing boundary that exists between a Progress 4GL client application session and an AppServer session influences how error conditions are viewed and handled in each session. Table 4–9 defines the four basic Progress 4GL conditions and describes how raising these conditions in one session affects the processing in the other, associated session.
Table 4–9: Progress 4GL conditions Condition Description An unhandledERRORcondition raised in a client application has no effect on any of the AppServer agents to which it is connected. Conversely, an unhandledERRORcondition raised in an AppServer agent has no effect on the client application to which it is connected.Handling this condition conforms to standard Progress 4GL rules. For more information about these rules, see OpenEdge Development: Progress 4GL Handbook .The only way an AppServer session can raiseERRORin the client application is for a remote procedure or an Activate procedure to execute theRETURNERRORstatement. This raisesERRORon theRUNstatement in the client application. An unhandledENDKEYcondition raised in a client application has no effect on any of the AppServer agents to which it is connected. Conversely, an unhandledENDKEYcondition raised in an AppServer agent has no affect on the client application to which it is connected.Handling this condition conforms to standard Progress 4GL rules. For more information about these rules, see OpenEdge Development: Progress 4GL Handbook .An AppServer session raises theENDKEYcondition if an attempt to find a database record fails or anINPUTFROMstatement reaches the end of an input stream. Like a batch client, there are no user-interface events that can raise theENDKEYcondition. ASTOPcondition raised in a client application while it is executing a remote procedure causes aSTOPcondition to be raised in the context of the executing procedure in the AppServer session.An unhandledSTOPcondition in an AppServer session results in the request being returned with theSTOPcondition.On a root client application, an unhandledSTOPcondition causes OpenEdge to restart the client Startup Procedure (-p). This restarted session retains connections with databases, but deletes outstanding persistent procedures. This restart also disconnects any AppServer agents it is connected to and deletes active remote persistent procedures.In an AppServer agent, an unhandledSTOPcondition causes theSTOPcondition to be propagated back to the client application where it is raised again in the context of the outstanding remote procedure request. It does not cause a restart of the AppServer session. All active remote persistent procedures and AppServer agent connections remain intact. An unhandledQUITcondition raised in a client application disconnects the client application from all AppServer agents it is connected to and deletes the proxy persistent procedure handles for that client application.An unhandledQUITcondition raised in an AppServer session results in the immediate, successful completion of the current remote procedure request. The client application is then automatically disconnected from the AppServer agent.
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |